/**
 * 
 */
package moviles.turnomovil.mundo;

import java.util.Calendar;



/**
 * @author administrator
 *
 */
public class TurnoMovil {
	
	private Alerta[] alertas;

	private static TurnoMovil instancia;
	
	private Calendar tiempoEstimado;
	
	private int turno;
	
	/**
	 * 
	 */
	public TurnoMovil() {
		alertas = new Alerta[5];
		turno = 0;
		tiempoEstimado = null;
	}
	
    public static TurnoMovil getInstance(){
    	if(instancia == null ){
    		instancia = new TurnoMovil();
    	}
    	return instancia;
    }
    
    /**
     * Agrega la alerta al arreglo. 
     * @param alerta
     * @return Si hay campo, agrega la alerta y devuelve true, si no false
     */
    public boolean addAlerta( Alerta alerta){
    	
    	for( int i = 0; i < alertas.length; i++)
    	{
    		if(  alertas[i] == null)
    		{
    			alerta.setId(i);
    			alertas[i] = alerta;
    			return true;
    		}
    	}
    	return false;
    }

    public boolean removeAlerta( int id ) {
    	for( int i = 0; i < alertas.length; i++ ){
    		if( alertas[i] != null && alertas[i].getId() == id ) {
    			alertas[i] = null;
    			return true;
    		}
    	}
    	return false;
    }
    
    public boolean updateAlerta( Alerta alerta ) {
    	for( int i = 0; i < alertas.length; i++ ) {
    		if( alertas[i] != null && alertas[i].getId() == alerta.getId() ) {
    			alertas[i] = alerta;
    			return true;
    		}
    			
    	}
    	return false;
    }
    
    public Alerta getAlerta( int id ) {
    	
    	for( int i = 0; i < alertas.length ; i++ )
    		if(alertas[i] != null &&  alertas[i].getId() == id )
    			return alertas[i];
    			
    	return null;
    }
    
    public Alerta[] getAlertas() {
    	
    	return alertas;
    }

	public Calendar getTiempoEstimado() {
		return tiempoEstimado;
	}

	public void setTiempoEstimado(Calendar tiempoEstimado) {
		this.tiempoEstimado = tiempoEstimado;
	}

	public int getTurno() {
		return turno;
	}

	public void setTurno(int turno) {
		this.turno = turno;
	}
}
